package com.camps.sdk.utils;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class LocationUtils {
    /**
     * 度分形式的经纬度转成double
     *
     * @param lngStr
     * @param latStr
     * @return
     */
    public static List<Double> transiformLatAndLng(String lngStr, String latStr) {
        List<Double> list = new ArrayList<>();
        double lng, lat;
        try {
            lng = new BigDecimal(lngStr).movePointLeft(2).doubleValue();
            lat = new BigDecimal(latStr).movePointLeft(2).doubleValue();
        } catch (Exception e) {
            lng = 0.0000;
            lat = 0.0000;
        }
        list.add(0, lng);
        list.add(1, lat);
        return list;
    }

    /**
     * 将double形式的经纬度转成度分形式
     *
     * @param str
     * @param index 0-表示纬度 1-表示经度
     * @return
     */
    public static String convertToDuMinute(String str, int index) {
        List<String> list = new ArrayList<>();
        //处理经度
        double lng = Double.parseDouble(str);
        int lngInt = (int) lng;//取出度
        String du = String.valueOf(lngInt);
        int i = 0;
        if (index == 0) {
            i = 2;
        } else if (index == 1) {
            i = 3;
        }
        if (du.length() <= i) {
            du = "0".concat(du);
        }
        String minute = String.format("%.4f", (lng - lngInt) * 60);//取出分
        String[] split = minute.split(".");
        String split0 = split[0];
        String split1 = split[1];
        if (split0.length() < 2) {
            split0 = "0".concat(split0);
        }
        while (split1.length() < 4) {
            split1.concat("0");
        }
        str = du.concat(split0).concat(split1);
        return str;
    }

}
